/*
 * Copyright (C) 2015-2016  Nicola Spanti (RyDroid) <dev@nicola-spanti.info>
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 * 
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */


/**
 * @file
 * @brief Macros and functions to set a planet to default values
 */


#ifndef PLANET_WARS_2D_RT_CORE_MODEL_PLANET_DEFAULT_H
#define PLANET_WARS_2D_RT_CORE_MODEL_PLANET_DEFAULT_H


#include "PlanetWars2dRT-core/specific/model/planet_essential.h"


#define PLANET_SIZE_X_DEFAULT 80
#define PLANET_SIZE_Y_DEFAULT 80
#define PLANET_LIFE_MAX_DEFAULT 50
#define PLANET_PRODUCING_CAPACITY_DEFAULT 1
#define PLANET_NB_UPDATES_TO_PRODUCE_DEFAULT 15
#define PLANET_PRODUCE_WHEN_NEUTRAL_DEFAULT false
#define PLANET_LEVEL_CURRENT_DEFAULT ((unsigned char) 1)
#define PLANET_LEVEL_MAX_DEFAULT PLANET_LEVEL_CURRENT_DEFAULT
#define PLANET_LEVEL_CHANGER_DEFAULT PLANET_LEVEL_CHANGER_NULL


EXTERN_C_BEGIN


void
planet_set_default_size(struct planet_t* p);

void
planet_set_default_life(struct planet_t* p);

void
planet_set_default_level_current_no_check(struct planet_t* p);

bool
planet_set_default_level_current(struct planet_t* p);

void
planet_set_default_level_max_no_check(struct planet_t* p);

bool
planet_set_default_level_max(struct planet_t* p);

void
planet_set_default_level_changer_no_check(struct planet_t* p);

void
planet_set_default_level(struct planet_t* p);

void
planet_set_default(struct planet_t* p);


EXTERN_C_END


#endif
